package com.liveneo.adapter.generate;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;

public class GenerateWithJava {
	 @Test
	    public void testBuild() throws Exception {
	                // 信息缓存
	                List<String> warnings = new ArrayList<String>();
	                // 覆盖已有的重名文件
	                boolean overwrite = true;
	                // 准备 配置文件
	                File configFile = new File(getPath("src\\test\\resources\\generatorConfig.xml"));
	                // 1.创建 配置解析器
	                ConfigurationParser parser = new ConfigurationParser(warnings);
	                // 2.获取 配置信息
	                Configuration config = parser.parseConfiguration(configFile);
	                // 3.创建 默认命令解释调回器
	                DefaultShellCallback callback = new DefaultShellCallback(overwrite);
	                // 4.创建 mybatis的生成器
	                MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
	                // 5.执行，关闭生成器
	        myBatisGenerator.generate(null);
	    }
	 
	 public static String getPath(String appendPath){
			String path = System.getProperty("user.dir");
			if(StringUtils.isEmpty(appendPath)){
				return path;
			}else{
				return path+"\\"+appendPath;
			}
		}
	 
	 @Test
	public void testPath() throws Exception {
		System.out.println(getPath("src\\test\\resources\\generatorConfig.xml"));
	}
}
